package com.rimi.cs.javaweb.dao;

import com.rimi.cs.javaweb.pojo.Cart;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 购物车的映射接口
 * @author Hayes
 */
public interface CartMapper {
    /**
     * 根据主键ID删除购物车条目
     * @param id 主键ID
     * @return
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 根据Card实例插入购物车条目
     * @param record Card实例
     * @return
     */
    int insert(Cart record);

    /**
     * 根据主键ID查询购物车条目
     * @param id 主键ID
     * @return
     */
    Cart selectByPrimaryKey(Long id);

    /**
     * 查询所有购物车条目
     * @return
     */
    List<Cart> selectAll();

    /**
     * 根据主键ID查询购物车条目
     * @param id 主键ID
     * @return
     */
    int updateByPrimaryKey(Long id);

    /**
     * 根据用户ID查询购物车条目
     * @param userId 用户ID
     * @return
     */
    List<Cart> selectByUserId(Long userId);

    /**
     * 根据主键ID更新购物车条目为quantity
     * @param id 主键ID
     * @param quantity 数量
     * @return
     */
    int updateByItemCount(@Param("id") Long id, @Param("quantity") Long quantity);

    /**
     * 根据用户ID和手机ID查询购物车条目
     * @param userId 用户ID
     * @param phoneId 手机ID
     * @return
     */
    Cart selectByUidAndPid(@Param("userId") Long userId,@Param("phoneId") Long phoneId);

    /**
     * 根据用户ID删除购物车条目
     * @param userId 用户ID
     * @return
     */
    int deleteByUserID(Long userId);
}